package grafica.moderador.controladores;

import java.awt.Color;
import java.io.Serializable;
import java.rmi.RemoteException;

import javax.swing.JList;

import persistencia.PersistenciaException;

import logica.datatypes.Jugador.DataJugador_R1;
import logica.datatypes.Jugador.DataJugador_R5;
import logica.datatypes.Partida.DataPartida_R1;
import logica.datatypes.Partida.DataPartida_R16;
import logica.datatypes.Partida.DataPartida_R4;
import logica.excepciones.JugadoresException;
import logica.excepciones.PartidaException;
import logica.fachadas.IFachadaModerador;

import grafica.moderador.ventanas.VentanaIniciarPartida;
import grafica.moderador.ventanas.VentanaMenuModerador;
import grafica.moderador.ventanas.VentanaNuevaPartida;
import grafica.moderador.ventanas.VentanaReanudarPartida;
import grafica.moderador.ventanas.VentanaVerPartida;

public class ControladorVerPartida implements Serializable{

	private VentanaVerPartida ventanaVerPartida;
	private ControladorMenuModerador controladorMenuModerador ;
	private final static long serialVersionUID = 1;
	
	public ControladorVerPartida(VentanaVerPartida ventanaVerPartida,ControladorMenuModerador controladorMenuModerador){	
		this.controladorMenuModerador = controladorMenuModerador;
		this.ventanaVerPartida = ventanaVerPartida;
	}
/*
	public void verJugadores(String codigo){
		//VentanaJugadores ventanaJugadores = new VentanaJugadores(this, codigo);
		//ventanaJugadores.setVisible(true);
		try{
			DataJugador_R5[] dataJugador_R5 = controladorMenuModerador.getFachadaModerador().listarNomJugadores(codigo);
			ventanaVerPartida.getJListJugadores(dataJugador_R5);

		} catch (RemoteException e1) {
			controladorMenuModerador.setJTextPane("Error RemoteException");
		} catch (PartidaException e2) {
			controladorMenuModerador.setJTextPane(e2.darMensaje());
		}
	}
	*/
	public void verPartida(String codigo){
			
		try{
		//VentanaPartida ventanaPartida = new VentanaPartida(this,partida);
		//ventanaPartida.setVisible(true);
			
		DataPartida_R16 dataPartida_R16 = controladorMenuModerador.getFachadaModerador().listarPartida(codigo);
		
		ventanaVerPartida.setjTextPaneCodigo(dataPartida_R16.getCodigo());
		
		String data=dataPartida_R16.getNomJugTurno();
		if(data.equals(""))
			ventanaVerPartida.setjTextPaneProximoJugador("- No Asignado -");
		else
			ventanaVerPartida.setjTextPaneProximoJugador(data);
		
		data=dataPartida_R16.getNomJugGanador();
		if(data.equals(""))
			ventanaVerPartida.setjTextPaneGanador("- No Asignado -");
		else
			ventanaVerPartida.setjTextPaneGanador(data);
		
		data=dataPartida_R16.getEnCurso().toString();
		if(data.equals("true"))
			ventanaVerPartida.setjTextPaneEnCurso("Si");
		else
			ventanaVerPartida.setjTextPaneEnCurso("No");

		data=dataPartida_R16.getIniciada().toString();
		if(data.equals("true"))
			ventanaVerPartida.setjTextPaneInicializada("Si");
		else
			ventanaVerPartida.setjTextPaneInicializada("No");		
		
		DataJugador_R5[] dataJugador_R5 = controladorMenuModerador.getFachadaModerador().listarNomJugadores(codigo);
		
		String[] jugadores = new String[dataJugador_R5.length];
		for(int i=0; i<dataJugador_R5.length;i++)
			jugadores[i]= dataJugador_R5[i].getNombre();



		ventanaVerPartida.setModel(jugadores);
		
		//JList jListJugadores = ventanaVerPartida.createJListJugadores(jugadores);
		//ventanaVerPartida.setjListJugadores(jListJugadores);
		
		} catch (PartidaException e2) {
			controladorMenuModerador.setJTextPane(e2.darMensaje());
		} catch (RemoteException e1) {
			controladorMenuModerador.setJTextPane("Error RemoteException");
		}
	}
	
	
	public void listarCodPartidas() {
		try{
			DataPartida_R4[] dataPartida_R4 = controladorMenuModerador.getFachadaModerador().listarCodPartidas();
			
			for (int i = 0; i < dataPartida_R4.length; i++) {
				ventanaVerPartida.cargarItemCombo(dataPartida_R4[i].getCodigo());
			}
			
		} catch (RemoteException e1) {
			controladorMenuModerador.setJTextPane("Error RemoteException");
		}
	}

}
